Giả thiết N là số nguyên dương. Số nguyên M là tổng của N với các chữ số của nó.

455

Top 1000 câu hỏi thường gặp môn Tin học có đáp án (phần 2) hay nhất được biên soạn và chọn lọc giúp bạn ôn luyện và đạt kết quả cao trong bài thi môn Tin học.

 Giả thiết N là số nguyên dương. Số nguyên M là tổng của N với các chữ số của nó.

Câu 12: Giả thiết N là số nguyên dương. Số nguyên M là tổng của N với các chữ số của nó. N được gọi là số nguồn của M.

Ví dụ: N=245, khi đó M=245+2+4+5=256, như vậy nguồn của 256 là 245.

Cho số nguyên M( M không quá 100 chứ số) hãy tìm nguồn nhỏ nhất của nó. Nếu M không có nguồn thì đưa ra số 0.

Lời giải:

uses crt;
var m,ans:string;
    i:longint;
function add(a,b:string):string;
var ans:string;
    sum,carry,i:longint;
begin
    carry:=0; ans:='';
    while length(a) < length(b) do a:='0' + a;
    while length(b) < length(a) do b:='0' + b;
    for i:=length(a) downto 1 do
        begin
            sum:=ord(a[i]) - 48 + ord(b[i]) - 48 + carry;
            carry:=sum div 10;
            ans:=chr(sum mod 10 + 48) + ans;
        end;
    if carry > 0 then ans:='1' + ans;
    exit(ans);
end;
begin
clrscr;
    readln(m);
    ans:='0';
    for i:=1 to length(m) do
        ans:=add(ans,m[i]);
            if ans > '0' then
        writeln(add(m,ans))
    else
        writeln(0);
readln;
end.

Từ khóa :
Giải bài tập
Đánh giá

0

0 đánh giá